/*
 * Copyright 2005-2013 evolution.com. All rights reserved.
 */
package com.evolution.warlock.entity;  

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Similarity;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
import org.wltea.analyzer.lucene.IKSimilarity;

/**
 * Entity - 配置表
 * 
 * @author EVOLUTION Team
 * @version 1.0
 */
@Indexed
@Similarity(impl = IKSimilarity.class)
@Entity
@Table(name = "ev_master_config")
@SequenceGenerator(name = "sequenceGenerator", sequenceName = "ev_master_config_squence")
public class MasterConfig extends BaseEntity {

 private static final long serialVersionUID = 6745428551320435954L;

 /** */
 private String keyType;
 
 /** */
 private Integer cd;
 
 /** */
 private String decode;
 
 /** */
 private String decodeName;
 
 /** */
 private String suppCd;
 
 
 /**
  * 
  * 
  */
 public enum KeyType {
	 
  /** 权限配置 */
  ROLE_AUTHORITIES("ROLE_AUTHORITIES"),
	 
  /** 表一 **/	 
  
  /** 1：有  2：无*/
  COMMON_HAVE("COMMON_HAVE"),
  
  /** 1: 是  2：否 */
  COMMON_BOOLEAN("COMMON_BOOLEAN"),
	 
  /** 性别 1：男   2：女 */
  GENDER("GENDER"),
  
  /** 婚姻状况 */
  MARRIAGE_STATUS("MARRIAGE_STATUS"),
  
  /**  被抓前停留时间 */
  DURATION_STATUS("DURATION_STATUS"),
  
  /** 教育程度  */
  EDUCATION_LEVEL("EDUCATION_LEVEL"),
  
  /** 经济来源 */
  TEMPORARY_INCOME("TEMPORARY_INCOME"),
  
  /** 职业 */
  PROFESSION("PROFESSION"),
  
  /** 职业详细 */
  PROFESSION_DETAIL("PROFESSION_DETAIL"),
  
  /** 刑事犯罪前科 */
  CRIMINAL_OFFENSE_BEFORE("CRIMINAL_OFFENSE_BEFORE"),
  
  /** 行政处罚 */
  PENALTY("PENALTY"),
  
  /** 行政案件 */
  PENALTY_CATEGORY("PENALTY_CATEGORY"),
  
  /** 刑事案件 */
  CRIMINAL_CATEGORY("CRIMINAL_CATEGORY"),
  
  /** 周围建筑类型*/
  SURROUND_BUILD_CATEGORY("SURROUND_BUILD_CATEGORY"),
  
  /** 未登记暂住的时间段 */
  TEMPORARY_NO_REGIST_DURA("TEMPORARY_NO_REGIST_DURA"),
  
  /** 本地落脚点类型 */
  CIVIL_DIS_FOOTHOLD_PLACE("CIVIL_DIS_FOOTHOLD_PLACE"),
  
  /** 交通工具来本地 */
  TEMPORARY_TRANS_TOOL("TEMPORARY_TRANS_TOOL"),
  
  
  
  /** 表二 **/
  
  /** 涉案类别 */
  INVOLVED_CATEGORY("INVOLVED_CATEGORY"),
  
  /** 民事纠纷类别 */
  CIVIL_DISPUTE("CIVIL_DISPUTE"),
  
  /** 民事纠纷调处情况 */
  CIVIL_DISPUTE_CONDITION("CIVIL_DISPUTE_CONDITION"),
  
  /** 民事纠纷调处结果 */
  CIVIL_DISPUTE_RESULT("CIVIL_DISPUTE_RESULT"),
  
  
  /** 民事纠纷发生至刑案发生时间间隔 */
  CIVIL_DISPUTE_TIMESTAMP("CIVIL_DISPUTE_TIMESTAMP"),
  
  
  /** 作案类型 */
  CASE_CATEGORY("CASE_CATEGORY"),
  
  
  /** 主要成因  */
  REASON_GROUP("REASON_GROUP"),
  
  
  
  /** 表三 **/
  CRIMINAL_AREA_CHOICE("CRIMINAL_AREA_CHOICE"),
  
  
  ROBBERY_SNATCH_CATEGORY("ROBBERY_SNATCH_CATEGORY"),
  
  SHARP_CATEGORY("SHARP_CATEGORY"),
  
  THEFT_CATEGORY("THEFT_CATEGORY"),
  
  CRIMINAL_MAIN_REASON("CRIMINAL_MAIN_REASON"),
  
  LOCAL_CRIMINAL_REASON("LOCAL_CRIMINAL_REASON"),
  
  FRE_ACESS_HOTEL_LEVL("FRE_ACESS_HOTEL_LEVL"),
  
  ADDR_AFT_CRIME("ADDR_AFT_CRIME"),
  
  FAV_AMUSE_OPT("FAV_AMUSE_OPT"),
  
  CRIMI_TANS_TOOL("CRIMI_TANS_TOOL"),
  
  CRIMI_TANS_TOOL_SOUR("CRIMI_TANS_TOOL_SOUR"),
  
  ILLEGAL_MONEY("ILLEGAL_MONEY"),
  
  BOOT_SELL_POS("BOOT_SELL_POS"),
  
  BOOT_SELL_CATE("BOOT_SELL_CATE"),
  
  CENSUS_OPTION("CENSUS_OPTION"),
  
  TRAFFIC_OPTION("TRAFFIC_OPTION"),
  
  REPORT_OPTION("REPORT_OPTION");
  
  private String value;
  
  private KeyType(String value) {
   this.value = value;
  }
  
  public String getValue() {
   return this.value;
  }
  
 };
 
 
 /**
  * 
  * 
  */
 public void setKeyType(String keyType) {
  this.keyType = keyType;
 }
 
 /**
  * 
  * 
  */
 @NotEmpty
 @Length(max = 200)
 @Column(nullable = false)
 public String getKeyType() {
  return keyType;
 }
 
 /**
  * 
  * 
  */
 @Length(max = 20)
 public Integer getCd() {
  return cd;
 }
 
 /**
  * 
  * 
  */
 public void setCd(Integer cd) {
  this.cd = cd; 
 }
 
 /**
  * 
  * 
  */
 @NotEmpty
 @Length(max = 200)
 @Column(nullable = false)
 public String getDecode() {
  return decode; 
 }
 
 /**
  * 
  * 
  */
 public void setDecode(String decode) {
  this.decode = decode;
 }
 
 /**
  * 
  */
 @Length(max = 200)
 public String getSuppCd() {
  return suppCd;
 }
 
 /**
  * 
  */
 public void setSuppCd(String suppCd) {
  this.suppCd = suppCd;
 }

 @Length(max = 200)	
 public String getDecodeName() {
	return decodeName;
 }

 public void setDecodeName(String decodeName) {
	 this.decodeName = decodeName;
 }
 
 
 
}
